package com.chenfan.filestore.utils;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.Set;

/**
 * @author K
 * @date 2023/3/15 2:10 PM
 */
public class ToStringUtil {


    public static void replaceData(JSONObject jsonObj) {
        Set<String> strings = jsonObj.keySet();

        for(String key: strings) {
            Object value = jsonObj.get(key);

            if (value instanceof JSONArray) {
                replaceData((JSONArray) value);
            } else if (value instanceof JSONObject) {
                replaceData((JSONObject) value);
            } else {
                jsonObj.put(key, value.toString());
            }
        }
    }

    public static void replaceData(JSONArray jsonArray) {
        for(int i=0; i < jsonArray.size(); i++) {
            Object value = jsonArray.get(i);

            if(value instanceof JSONArray) {
                replaceData((JSONArray)value);
            }
            else if(value instanceof JSONObject) {
                replaceData((JSONObject)value);
            }
            else {
                jsonArray.set(i, value.toString());
            }
        }
    }

    public static Object replace(String data) {
        try {
            JSONObject jsonObject = JSONObject.parseObject(data);
            replaceData(jsonObject);
            return jsonObject;
        } catch (Exception e) {
            JSONArray jsonArray = JSONArray.parseArray(data);
            replaceData(jsonArray);
            return jsonArray;
        }
    }
}
